Learn what the experts have to say about the ultimate code review experience.
We recently rolled out a new feature designed to make the review workflow more intuitive for code authors: Publish on Push. This is now the default behavior when you're the author of a GitHub pull...
ReadMoving from Google’s internal code review tool, Critique, to GitHub can feel like going from a high-speed fiber connection to dial-up. Critique is fast, seamless, and deeply integrated into Google’s...
ReadIn the ever-evolving landscape of software development, efficiency and clarity are key. We know that managing file renames during code reviews can often be a point of friction, especially when it...
ReadReview code with protected eyes 😎 Reviewing code can be a strenuous activity for your eyes, but it doesn’t have to be. Recently, we launched dark mode on Reviewable. The default setting is system, so...
ReadReviewable allows you to configure your repositories via the Repository settings in the Reviewable GUI. While this is great for smaller organizations, when working with a large number of repositories,...
ReadAs coding projects grow in complexity your team may need to commit your project dependencies alongside your code. Sometimes these dependencies are stored in a specific folder like node_modules or...
ReadCode review is an important part of any developer's process, and is essential to helping your team create the highest quality code possible. Ideally, code reviews would be limited to the scope of a...
ReadWhat's the deal then? Why aren't they reviewing it properly? We've seen this in companies where teams have started to specialize, but the tools don't help them out with it yet. If this story feels...
ReadSay your company is on GitHub Enterprise (aka the enterprise variant of github.com) and you'd like to start using Reviewable. That's an awesome idea if I say so myself! But... which variant of...
ReadThose who have been with Reviewable for a long time may have noticed that we never (ever!) updated our prices in the 9 or so years we’ve been around. Look, don’t judge us -— we’re engineers, we’d...
ReadQuite a few months ago, we started using Missive for our internal email and chat client, and we've slowly invested more and more into it. Missive's great API and support for posts has let us automate...
ReadAs some of you may know, we've been working on getting a SOC 2, and we're excited to announce that as of last week we have completed our "System and Organization Controls 2" (SOC 2) Type I...
ReadLet's walk through the life of a code review together, and while we do so I'd like to show you two ways to view that lifecycle. A junior dev, Bob, pulls the main branch (formerly known as the master...
ReadWe're going to switch to monthly posts, mainly to reduce my workload! As a result, these changelogs will include a lot of changes you've already been able to see for a while, and a few changes from...
ReadMostly bug fixes this time around. I could avoid this awkwardness by posting only next week, but I'm going to face the awkwardness and ... hi there ... Code Review Experience We fixed an issue that...
ReadWe just released our May Enterprise release, if you would like more information about that visit our Enterprise README or contact us at sales@reviewable.io As a result, the work mentioned in this...
ReadWe're also releasing all of these features (and bug fixes) into the Enterprise release this week, so everyone can enjoy these! For those using reviewable.io, you're already able to use these features...
ReadWe didn't deploy to production last week, so we held off on publishing a changelog that would have features nobody could use. So this is a double-feature! Code Review Experience We changed up how...
ReadWe cut another Enterprise release on April 11th, as promised a couple weeks ago. See the Enterprise Changelog for more info! Code Review Experience It's now harder to accidentally delete your whole...
ReadSmaller changelog than usual, as we stabilize for the next Enterprise release again. Code Review Experience Coverage bar colors are configurable We added Code Coverage a while ago, with some default...
ReadWe cut an Enterprise release on March 23rd, but as you've seen our changelogs have been pretty extensive, so we will be cutting a new one. As of publishing, it's been uploaded, see the Enterprise...
ReadThis is a catch-up post, since we've actually done a ton of work and we hate to skip so many great features. We'll sporadically post these catch-up logs so these are searchable, and so these features...
ReadAs we approach the Enterprise release, we're focusing on bugfixes and small improvements. Dashboard Changes We've heard a lot of feedback about the avatars and icons used in the dashboard, and we made...
ReadThis was a big one, with multiple releases to production, as we are finalizing the Enterprise release! Comment Authoring and Reviewing Changes Thanks to you too! When a new comment starts with thanks,...
ReadBlog Renewal For the past 6-7 years, we've been quiet on this blog, and our changelog has been sparse. However, this is not because we haven't been hard at work, rather it's because we've been...
ReadThe participants panel helps you manage the review process efficiently by providing a centralized view of all participants, including their roles, status, and relevant statistics. You can also take...
ReadYou can now avoid re-reviews of code after a rebase with no conflicts, though you'll need a custom completion condition to do so. There's a new baseChangesOnly flag available to custom completion...
ReadNow you can explore a discussion's history one comment at a time in addition to showing the entire thread. We also revamped the UI surrounding the options to show/hide all comments in a discussion,...
ReadYou can now set a per-repository default review overlap strategy. This can be useful if, for example, your team's workflow requires each reviewer to review every file, and you don't want to bother...
ReadWe originally launched the discussion disposition system some four years ago, and while it's held up pretty well we've also learned a thing or two in the interim. Today, we made a number of changes...
ReadReviewable now supports maintain and triage permissions. The maintain permission has been added as an option to the discussion dismissal authority setting: In addition, members with triage authority...
ReadSingle and multiline code suggestions can now be created from within a comment draft. No more manual copy/pasting! Select multiple lines: Or double-click the button to insert the current line...
ReadIn some environments it's traditional to commit third-party code into the repository, but you usually don't want to review changes to them. Reviewable will now recognize these so-called...
ReadReviewable now supports git spr. Stacking pull requests is a convenient way to isolate the scope of pull requests. Spr is a tool used for stacking pull requests that creates a stack of PRs, making...
ReadWhen a user posts a comment (whether via Reviewable or GiHub), we automatically snapshot all revisions to ensure that the comment's context is preserved. This can lead to a mess, though, if you're...
ReadYou can now conveniently suggest changes when reviewing code: And you get a nice, basic code editor when doing so, with syntax highlighting, automatic indents, and so on: You can use the feature for...
ReadReviewable can now display code coverage annotations right in your diffs! To take advantage of this feature you'll need to configure how to fetch coverage reports on your repository's settings page. ...
ReadHey folks, we're trying to figure out whether to put first-class support for reviewing Jupyter Notebooks on our roadmap and I was hoping you could chime in with a bit of data: Do you use Jupyter...
ReadReviewable now defaults to the Lodash 4.x module when executing new custom completion code. We'll continue using Lodash 3.x for existing conditions, but if you want to upgrade please add a...
ReadReviewable now supports uploading video files in comments. We mirror Github's support of both MP4 and MOV files, with a maximum upload size of 100MB for Enterprise users and 10MB for SaaS users. ...
ReadReviewable now supports diffing and reviewing commit messages. This can be an important part of some workflows, but also a big UI improvement even when just figuring out how revisions map to...
ReadReviewable will now automatically defer a review when published with unreviewed files or unresolved discussions. This allows you to post a partial review while visually handing off responsibility for...
ReadReviewable will now automatically group reverted and renamed files in the file matrix. This can help you quickly mark as reviewed files that you may not care about reviewing in detail. Only files...
ReadWe added a new review overlap strategy: review all files personally, regardless of whether they've been reviewed by other users or in previous revisions. This new option joins the other two that...
ReadHeads up: we now feed all files — even ones reverted to base — into your custom review completion condition. This aligns with our recent client-side changes to require reviews even if a file has been...
ReadWe've made improvements to some of our core revision review semantics. First, we now require you to review a reverted file before hiding it away. In some cases involving rebasing we'll even ask you...
ReadWe've made improvements to Reviewable's revision collapsing algorithm! In the past, rebasing or merging from base would require manual diff approval even when a PR's files were untouched -- especially...
ReadReviewable can now send review status update notifications to a webhook of your choice — yes, that includes Slack. 😲 Just add a webhook property to the structure returned by your custom review...
ReadYou can now constrain your list of PRs on the dashboard to a specific organization: The setting is sticky so if you only use Reviewable in one organization you'll never see irrelevant PRs again! ...
ReadHey everyone, I'm happy to announce that Doug Bradshaw (doug@reviewable.io) is taking over the lead of Reviewable. Doug has a PhD in quantum optics and several years of experience in tech startups,...
ReadHeads up: Firefox 71 has a regression that causes Reviewable to fail to load diffs with the error TypeError: Argument 1 of FileReaderSync.readAsText is not an object. I filed a bug report but in the...
ReadI added an option to the repo settings panel that lets you limit who can dismiss participants from a discussion. By default, anyone with push permissions can do so, but if you prefer you can only let...
ReadA small new feature: you can now return a default merge (or squash) commit message from your custom review completion condition, using any and all review state data at your disposal. These messages...
ReadThe file matrix now displays files in a tree structure rather than as a flat list. I think this is easier to read and saves considerable horizontal space, which can be a problem when you start...
ReadI finally found the issue that was causing sessions in other browsers to go offline and put in a temporary fix. A side-effect is that authorization upgrades will again suffer from a race condition...
ReadAfter further investigation, it appears that signing in to Reviewable in multiple contexts (browsers, profiles, etc.) causes all but the last sign-in to go offline. A workaround is to sign out...
ReadHeads up: some users have reported that Reviewable has started going offline all the time, causing them to lose work. I'm still investigating but so far it appears to be restricted to the recently...
ReadTo help integration with other tools, you can now direct Reviewable to sync its pending reviewers to GitHub's requested reviewers in the Publish options dropdown: This tries to keep the list of...
ReadThere's now a snazzy Reviewable user guide for your reading pleasure! It has all the content from the contextual help system and the old FAQ and more, arranged so that you can either read it straight...
ReadLong time no update! Lots of work happening behind the scenes — including many bug fixes — but finally here's some visible updates to announce related to custom review completion conditions. First...
ReadHeads up: the "being reviewed by me" section on the dashboard will no longer include reviews where you are only a mentionee, but will now include self-reviews. There should be no other...
ReadA small quality of life improvement: you can now set a query on the Reviews list as your default, so it'll be automatically applied whenever you visit the page. I also added ±starred and ±watched...
ReadI recently hacked in support for GitHub's new Checks API — they should now show up in Reviewable's Checks dropdown along with the usual commit status updates: Note that the API is not finalized yet...
ReadWhile the "mark file as reviewed" button is always available in the toolbar, moving the mouse up there to click it after you're done reading down through the diffs breaks your visual flow. ...
ReadTwo small updates related to GitHub review approvals: The sample review completion condition for evaluating GitHub approvals was broken — sorry! I fixed it, but if you used it as a template for your...
ReadIt used to be that if you were @-mentioned in a comment and came to Reviewable, you'd always be treated as a reviewer: many comments would appear as unreplied, files would be looking for your review...
ReadBowing to convention, I moved the "N days ago" dividers between comments to be located above the corresponding time period, rather than below. This doesn't look quite as good as the...
ReadDo you like using the Discussing disposition to let the PR author resolve a discussion, but wish there was a way to see discussions that were resolved with no further comment? Enter the new...
ReadIntegration with GitHub's review approval process is now live! When publishing your drafts you can now choose to comment, approve, or request changes, just like on GitHub: Reviewable will...
ReadSince day 1, users have been asking me change the contrast on diff highlighting — usually in opposite directions. It's pretty much impossible to pick a value that will satisfy everyone as the actual...
ReadI implemented a workaround for a bug in GitHub's GraphQL queries that sometimes omitted results from large responses. This bug sometimes silently caused random PRs to go missing from the review list....
ReadThe review status inserted into your message when you publish is now the same as the one computed for the commit status message, and also includes the list of people being waited on. If you've set up...
ReadThe new streamlined discussion semantics have landed! In summary: The Discussing disposition becomes simply "I'm not gonna resolve it, but you're welcome to". Resolution is driven solely...
ReadGitHub recently introduced the Checks API to allow integrations to report richer information against your commits. Unfortunately, they did so in a way that mixed up legacy commit statuses and the new...
ReadSome workflows require overwriting a PR's target branch with the head branch when it's ready to merge — for example if you're maintaining a fork and rebasing from the upstream master. Currently, both...
ReadAfter lots of bug reports (thanks all!) and fixes, the beta version has now replaced the old stable one on https://reviewable.io. Visits to https://beta.reviewable.io will redirect automatically and...
ReadAfter over two months of testing, debugging and fixing, Reviewable's beta version is ready for prime time! I've moved the canary slide over to 100%, which means that everybody visiting reviewable.io...
ReadIf you subscribe to Reviewable for private repositories, you can now directly limit the users who will count against your plan's quota: If you configure this option, reviews will only be created for...
ReadHave you ever wondered if a reviewer is working on your top priority super-urgent review right now, or if you need to send them yet another reminder? In the beta, you can now see how recently they...
ReadRequested reviewers are now fully supported throughout Reviewable! Details follow, including which features are only in the beta so far. Note that you may want to update your custom review...
ReadBesides a bunch of bug fixes (and undoubtedly some new bugs to balance the scales), there are a couple of small new features in the current beta version: Special filters on the review list can now be...
ReadI've launched the beta of a major update to Reviewable! The changes are mostly internal but pave the way for the upcoming UI redesign. The beta is running on https://beta.reviewable.io and I'm...
ReadI've fixed the server algorithm that pulls together pieces of metadata from renamed files into a single synthetic "master" file. While it always worked fine in simple situations, it used to...
ReadI've tweaked how Reviewable posts commit status updates to GitHub to (hopefully) cause less problems. It turns out that in some projects Reviewable commit status updates triggered the CI tool, which...
ReadIn Reviewable, a revision becomes obsolete if any of the commits it covers are no longer part of the PR; this usually happens because of a force push. Those revisions are shown crossed out in the...
ReadCollapsing a long discussion (e.g., by clicking Acknowledge) will no longer scroll you to some seemingly random spot on the page. If the top of the discussion is off-screen, Reviewable will...
ReadWhen you connect a repo, Reviewable will now automatically create a sample commit status (not associated with any PR). This way, you can include Reviewable in the branch protection settings in GitHub...
ReadIf you often create new repos in your organization and forget to connect them to Reviewable — good news! If you're an organization owner, just switch on this toggle on the Repositories page and it'll...
ReadIf you've ever gotten stuck on a bare "200 OK" page when trying to sign in — particularly in mobile browsers — the issue should be fixed now. I've made the process more robust and...
ReadA teeny-tiny new feature while I keep plugging away at the rewrite: there's a small button in the Changes box to copy the PR's head (source) branch name. This can be useful if you want to check out...
ReadReviewable now respects the diff settings in your .gitattributes files. For example, to disable diffs for any files in the vendor directory and use PHP higlighting for all .phpt files, you could put...
ReadFor those of you who switched badge placement from PR descriptions to comments, you may be glad to know that you can now designate a specific account to create these comments. This can be useful if...
ReadWe're looking over the upcoming priorities for Reviewable and want to know what you think. Please help out by answering an ultra-quick 5 question feedback...
ReadBy popular demand, you can now have the "This change is " badge appear in a comment rather than in the PR's description. The new option appears in repository settings: On the upside,...
ReadIt's no secret that Reviewable's performance is not exactly best-in-class. While it can deal with large reviews better than GitHub—mainly by not trying to precompute all the diffs and stuff them onto...
ReadYou can now rebase and merge a branch in Reviewable just like in GitHub, as long as there are no conflicts: This supersedes the previous "fast forward" option, though Reviewable will still...
ReadI've tweaked who sees a discussion as "unreplied" to improve workflows and ensure a discussion is always red for someone: If a discussion was initiated by somebody other than the PR...
ReadIf you connected a busy repo to Reviewable, you may have run into a situation where it used up all your GitHub API quota and both you and the repo connection were stuck until it replenished. As of a...
ReadI released two small bug fixes that, put together, should improve the usability of file tabs: The maximum path width is now computed correctly, so you don't end up with needlessly wasted whitespace...
ReadGitHub recently introduced the ability to change the base branch of a pull request, and now you can also do this directly from Reviewable: While GitHub warns you that changing the base branch may...
ReadIf you use the "review each commit separately" style then I just made some minor but useful improvements to this workflow. First, the file matrix header now indicates which revisions/commits...
ReadWrapped lines are now indicated with a left margin bar instead of italics, which should be easier to notice and figure out: I also fixed some bugs that occasionally caused lines to wrap one or two...
ReadI recently rewrote some key pieces of code that implement the publishing process, so if you've seen errors like "draft deleted while rendering markdown", "comment changed while...
ReadYou can now squash your pull request before merging and edit the merge commit message, bringing Reviewable back to parity with the GitHub UI. And by way of apology for how long you had to wait for...
ReadYou can now access all repo settings through a single panel, by clicking on the repo's name on the Repositories page: You can also apply settings to multiple repos at once, and set a...
ReadSetting multiple assignees will now also set them in GitHub, since they've added this feature. One consequence is that Reviewable also enforces GitHub's limit of 10 assignees. Note that assignees for...
ReadYou can now quickly quote some text when replying to a comment by selecting it before clicking in the reply box or hitting 'r' (just like on GitHub). Note that if you quote anything in your comment...
ReadA PR's author is treated differently from other users when it comes to selecting default diffs, counting unreviewed files, etc. However, if they mark at least one file as reviewed (even just draft),...
ReadCustom review completion conditions can now individually override the reviewed state of each revision of every file, on top of the overall review status. By default, a file revision is considered...
ReadSometimes it's useful to quote some code in a comment to make it clear what you're referring to -- this can often substitute for attaching a comment to a range of lines. But big chunks of code can...
ReadA perennially popular question is "who is this review waiting on?" aka "why can't I merge already?!" Reviewable now gives you an answer: Note that the list may not be complete or...
ReadToday the default "discussing" disposition becomes more intuitive and powerful: Comments sent by reviewers now default to being "not OK", so the reviewee can't simply...
ReadI added commands to navigate to the first/last unreviewed file, unresolved discussion, etc. They're not bound by default but you can assign your own keyboard shortcuts if you'd like to take advantage...
ReadComments sent from within Reviewable now automatically include some extra context: the three preceding lines of code for new discussions, or a quote of the previous message for responses. This should...
ReadThere was a bug in GitHub that often showed the wrong ("pending") status for the code review after a PR was merged, even if the review was complete. The awesome GitHub devs fixed it quickly...
ReadGood news if you like to work from your inbox: emailed replies now work correctly with Reviewable! Specifically, if you reply to a multi-comment message, your reply will be split up and attached to...
ReadI have once again dug into the seedy underbelly of the permission system and wrestled more race conditions and broken error handling routines into submission. (BTW, they only produced false negatives...
ReadIf you're listing PRs for repos to which you can push on your Reviews page, you can now limit it to just those repos that are connected to Reviewable: This can be useful if you have a lot of watched...
ReadWhen you load a review, Reviewable picks some default diffs that it thinks you might be interested in seeing. Sometimes, this can result in no diffs showing at all, because you're the review's author...
ReadI you've run into a "permission denied" error when trying to publish, then had it work a few hours or a day later, I think I've got it fixed. The problem was caused by future-dated commits...
ReadYou can now filter "My Reviews" more effectively: multiple space-separated terms are ANDed ("+mine +private", but also works for plain words), and you can OR special +terms by...
ReadTo make it easier to review rebased PRs commit-by-commit, Reviewable will now attempt to match up rebased commits with their older counterparts. This will affect the revision pairs it diffs for you by...
ReadYou can now assign more than one person to a review! Use the +@ and -@ directives in your comments to manage assignees. GitHub only supports one assignee so if you set two or more then Reviewable...
ReadTo help manage your reviews, the list will now be divided into sections: "Assigned to me", "Created by me", "Involving me", "Mentioning my team" and...
ReadPer a user's suggestion, you can now customize the LGTM button to reply with a repo-specific approving comment. The field is in the same dialog as the condition customization code, accessible by repo...
ReadI added a small LGTM button to the top-level discussion's reply field, similar to the Done button that shows up for the PR author. This can be a convenient way to indicate that you think the PR is...
ReadLots of small fixes this week, including: Top-level comments (both in-app and from GitHub) will now snapshot provisional revisions. LGTM emojis in code blocks won't be rendered or counted any...
ReadIf you marked all files as reviewed by mistake by clicking the "Mark as reviewed" button or via the default shift+X keyboard shortcut, you can now undo via a small link that appears under...
ReadI cleaned up the file sorting code so that files should now be reliably sorted, and files in a directory will always be sorted before any...
ReadThe @-mention completion list will now include everyone who participated or was previously mentioned in the PR, even if they're not a member of the organization or a repository...
ReadEven though I work on Reviewable all the time, sometimes it may seem that not much is happening so I'm going to try out this new changelog feature. You'll see a small red counter whenever there's an...
ReadYour code, my app—no worries Running users' rules safely and cheaply on AWS Lambda As a web app becomes more mature, you often want to enable deeper customization than is possible just by making...
Read[Edit: as of mid-2016, an Enterprise version of Reviewable built along the lines sketched out below—but also supporting full at-rest data encryption in Firebase—is now available. See here for...
ReadReviewable is built on top of Firebase and had a rough start to September, with the whole app dropping out for minutes at a time. I've finally gotten to the bottom of the issues and fixed them, but...
ReadPower to the author More features for PR and comment authors Reviewable just got a few new features that relax some restrictions on the review process. First, it used to be that once you published a...
ReadReviewable Out of Beta It's a Real ProductTM now Exciting news: Reviewable, the code review service for GitHub, is out of beta! We've made a lot of improvements since our launch in September and many...
ReadI've been struggling recently with how to price Reviewable. I tried reading up on the subject of pricing SaaS offerings and talked to a bunch of people but discovered that there's no consensus, and...
ReadWhen I started designing the tech stack for Reviewable I knew I wanted something lightweight that would allow a lone developer (me!) to put together a high quality, modern web app quickly. Most of my...
Read